package com.xiaobange.entity;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.ToString;

/**
 * 预约表
 * @TableName Reservation
 */
@Data
@TableName("reservation")
@ToString
public class Reservation implements Serializable {
    /**
     * 预约编号
     */
    @TableId(value = "reservation_id", type = IdType.AUTO)
    private Integer reservationId;

    /**
     * 客户ID
     */
//    @NotNull(message = "发起预约用户不能为空")
    private Integer clientId;

    /**
     * 宠物名称
     */
    private String petName;


    /**
     * 宠物品种
     */
    @NotNull(message = "类别不能为空")
    private String petType;

    /**
     * 顾客电话号码
     */
    @NotNull(message = "电话号码不能为空")
    private String phone;


    /**
     * 顾客姓名
     */
    @NotNull(message = "用户姓名不能为空")
    private String nickname;

    /**
     * 预约医生ID
     */
    @NotNull(message = "预约医生不能为空!")
    private Integer doctorId;

    /**
     * 预约日期
     */
    @NotNull(message = "预约时间不能为空!")
    @JsonFormat(locale="zh", timezone="GMT+8")
    private LocalDate reservationDate;


    /**
     * 预约时间
     */
    @NotNull(message = "预约时间不能为空!")
    @JsonFormat(locale="zh", timezone="GMT+8")
    private LocalTime reservationTime;


    /**
     * 预约状态 1：预约中 2：接诊中 3：完成 4：取消
     */
    private String status;

    /**
     * 创建者
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 修改者
     */
    private String updateBy;

    /**
     * 备注
     */
    private String remark;

    private static final long serialVersionUID = 1L;

}